export const REPLACE_CODE = '800405'
export const INVALID_RES_CODES = ['800403', '800401', REPLACE_CODE]
export const SUCCESS_CODE = '000000'

export interface BaseResponse {
    code: '000000' | '500000' | '800403' | '800405'
    data: any
    msg: string
    status: number | string
    success: boolean
}

export const ErrorCodeInfo: { [key: string]: { status: number; msg: string } } = {
    /**
     * 成功（兼容老系统）
     */
    '000000': { status: 200, msg: '执行成功!' },
    /**
     * 提示错误（5开始的是提示错误）
     */
    '500000': { status: 500, msg: '提示错误' },
    /**
     * 服务异常(8开始的是服务的错误）
     */
    '800000': { status: 503, msg: '系统开小差了,请稍后再试!' },
    '800001': { status: 504, msg: '服务被拒绝,请检查!' },
    '800002': { status: 404, msg: '服务忽然不见了,请稍后再试!' },
    '800003': { status: 408, msg: '服务请求超时,稍后重试!' },
    '801001': { status: 403, msg: '服务执行被取消!' },
    '801201': { status: 413, msg: '服务请求数据超过限制,请检查!' },
    '800503': { status: 503, msg: '服务忽然不见了,请稍后再试!' },
    /**
     * 未知异常
     */
    '999996': { status: 404, msg: '系统开小差了,请稍后再试!' },
    /**
     * 系统异常
     */
    '999999': { status: 500, msg: '系统开小差了,请稍后再试!' },
    /**
     * 业务错误（7开始的是业务错误）
     */
    '700000': { status: 500, msg: '业务执行发生错误,请稍后重试!' },
    /**
     * 参数验证错误(4开始的是参数验证错误）
     */
    '4000000': { status: 400, msg: '参数验证错误,请检查输入项!' },
    /**
     * TOKEN TIME OUT
     */
    '800402': { status: 402, msg: '登录已过失效时间,请重新登录' },
    /**
     * 用户尚未登录
     */
    '800403': { status: 403, msg: '无有效授权,请重新登录!' },
    /**
     * 无有效授权
     */
    '800401': { status: 401, msg: '无有效授权,请重新登录!' },
    /**
     * AccessToken失效
     */
    '800404': {
        status: 402,
        msg: 'invalid credential, access_token is invalid or not latest hint'
    },
    /**
     * 重复交易
     */
    '700302': { status: 302, msg: '请求发起时间超过服务器限制,请检查' },
    /**
     * 登录
     */
    '800410': { status: 504, msg: 'client/clientSecret不正确,请检查!' },
    '800411': { status: 504, msg: '账号/密码错误,请检查!' },
    '800412': { status: 504, msg: 'refreshToken无效,请检查!' },
    '800413': { status: 504, msg: '参数错误,请检查!' }
}
